package com.csu.cphone.service;

import java.util.List;

import com.csu.common.exception.WebException;
import com.csu.cphone.pojo.MaintainOrderPojo;
import com.csu.cphone.vo.MaintainOrderVo;

/**
 * @项目名称：cphone
 * @类名称：MaintainOrderService
 * @类描述：
 * @创建人：Tangc
 * @创建时间：2017年11月20日 下午3:41:24
 * @company:
 */
public interface MaintainOrderService
{

    /**
     * @description
     * @author TangC
     * @date 2017年11月20日 下午4:02:22
     * @param orderVo
     * @return
     */

    MaintainOrderPojo commitOrder(MaintainOrderVo orderVo) throws WebException;

    /**
     * @description
     * @author TangC
     * @date 2017年11月20日 下午4:02:29
     * @param orderVo
     * @return
     */

    MaintainOrderPojo updateOrder(MaintainOrderPojo orderPojo);

    /**
     * @description
     * @author TangC
     * @date 2017年11月20日 下午4:02:36
     * @param serialNumber
     * @return
     */

    MaintainOrderPojo getOrderBySn(String serialNumber);

    /**
     * @description
     * @author TangC
     * @date 2017年11月20日 下午4:02:41
     * @param customerId
     * @return
     */

    List<MaintainOrderPojo> queryOrdersByCustomerId(int customerId);

    /**
     * @description
     * @author TangC
     * @date 2017年12月6日 下午5:21:52
     * @param maintainOrderId
     * @return
     */

    MaintainOrderPojo queryById(Integer maintainOrderId);

    /**
     * @description
     * @author TangC
     * @date 2017年12月6日 下午5:21:57
     * @return
     */

    Integer count();

    /**
     * @description
     * @author TangC
     * @date 2017年12月6日 下午5:22:02
     * @param pageSize
     * @param startIndex
     * @param order
     * @return
     */

    List<MaintainOrderPojo> queryList(Integer pageSize, Integer startIndex, String order);

    /**
     * @description
     * @author TangC
     * @date 2017年12月6日 下午5:22:08
     * @param maintainOrderId
     * @return
     */

    Integer deleteById(Integer maintainOrderId);

    /**
     * @description
     * @author TangC
     * @date 2017年12月9日 下午10:58:57
     * @param producerId
     * @return
     */

    List<MaintainOrderPojo> getWaitingOrder(String number);

    /**
     * @description
     * @author TangC
     * @date 2017年12月9日 下午10:59:01
     * @param orderSn
     * @param customerId
     * @return
     */

    Integer cancelOrder(String orderSn, int customerId);

    /**
     * @description
     * @author TangC
     * @date 2017年12月18日 上午11:17:13
     * @param serialNumber
     * @return
     */

    Integer finishOrder(String serialNumber);

    /**
     * @description
     * @author TangC
     * @date 2017年12月18日 上午11:17:16
     * @param serialNumber
     * @return
     */

    Integer confirmFinish(String serialNumber);

    /**
     * @description
     * @author TangC
     * @date 2017年12月19日 下午2:44:49
     * @param number
     * @param status
     * @return
     */

    List<MaintainOrderPojo> queryOrderByProducer(String number, Integer status);

    /**
     * @description
     * @author TangC
     * @date 2017年12月27日 下午5:27:34
     * @param sn
     * @param number
     * @return
     */

    MaintainOrderPojo turnOrder(String sn, String number) throws WebException;

}
